工业控制系统有哪些常见漏洞类型及造成了什么样的危害
工业控制系统有哪些常见漏洞类型及造成了什么样的危害?
(1)拒绝服务漏洞
拒绝服务漏洞指可以实现拒绝服务(Denial of Service,DoS)攻击的漏洞。DoS攻击的目的是使计算机或网络无法提供正常的服务。最常见的DoS攻
击是攻击者使用极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,导致合法的用户请求无法通过。而利用拒绝服务漏洞进行攻击,攻击者往往不需要具有很高的攻击带宽,有时只需要发送1个数据包就可以达到攻击的目的。
例如,2018年3月,思科Talos安全研究团队公开了Rockwell(罗克韦尔自动化有限公司)的Allen-Bradley MicroLogix 1400系列PLC中存在的多项严重安全漏洞,其中以太网卡格式错误的数据包拒绝服务漏洞(CVE-2017-12088)允许攻击者发送特制数据包,使受影响的设备进入电源循环和故障状态,导致先前存储在设备中的梯形逻辑被删除。PLC会话通信资源池拒绝
服务漏洞(CVE-2017-12093)存在于受影响设备的会话连接功能中,利用这一漏洞攻击者可以在一段时间内发送多个“Register Session”数据包,以强制终止合法连接,并阻止对受影响设备建立额外的合法连接。
(2)缓冲区溢出漏洞
缓冲区溢出漏洞是一种非常普遍、非常危险的漏洞,在操作系统、应用软件中广泛存在。缓冲区溢出通俗地讲就是计算机对接收的输入数据没有进行有效的检测(理想的情况是程序检测数据长度并不允许输入超过缓冲区长度的字符),向缓冲区内填充数据时超过了缓冲区本身的容量,导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他内存空间的数据。
利用缓冲区溢出漏洞进行攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。
例如,2018年9月,罗克韦尔自动化有限公司和ICS-CERT发布通报称,RSLinx Classic软件存在高危漏洞,影响范围包括RSLinx Classic 4.00.01及之前版本,一旦被成功利用可能实现任意代码执行,甚至导致设备系统崩溃。其中,CVE-2018-14829为基于栈的缓冲区溢出漏洞,
攻击者可以通过发送含有恶意代码的数据包,实现主机中的任意代码执行、读取敏感信息或导致系统崩溃等;CVE-2018-14821为基于堆的缓冲区溢出漏洞,攻击者可以通过发送含有恶意代码的数据包,导致应用程序终止运行。
(3)访问控制漏洞
访问控制指系统按用户身份及其所属的预先定义的策略组来限制用户使用某些数据资源,通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。访问控制是网络安全防范和资源保护的关键策略之一,也是主体依据某些控制策略或权限对客体本身或其资源进行的不同授权访问。而访问控制漏洞,就是攻击者可以绕过安全限制,执行未授权的操作。
利用访问控制漏洞进行攻击,可以导致系统信息泄露、篡改、删除,甚至可以取得系统特权,进而进行各种非法操作。
例如,2017年9月,西门子发布公告称发现高危访问控制漏洞CVE-2017-12736,攻击者可借此远程入侵工业通信设备,包括SCALANCE X工业以太网交换机、罗杰康交换机、运行ROS(Robot Operating System,机器人操作系统)的串口共享设备等。
(4)跨站脚本漏洞
跨站脚本漏洞通常存在于客户端和服务器端,是能够实现跨站脚本(通常简称为XSS)攻击的漏洞。XSS攻击的原理是客户端发送请求到服务器端,服务器在没有验证请求中的信息的情况下,就对请求进行了处理,从而导致原本正常的页面被嵌入了恶意HTML代码。之后当其他用户访问该页面时,恶意代码自动执行。利用跨站脚本漏洞可以进行广告拦截、窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等网络攻击。
例如,2018年12月,安全公司Applied Risk发现瑞士工业技术公司ABB生产的部分PLC安全网关(该系列网关允许ABB的PLC与其他控制系统通信)中存在两个高危漏洞。其中的跨站脚本漏洞允许攻击者通过管理HTTP和Telnet接口,注入恶意代码,当合法管理员访问设备的Web门户时,恶意程序将被执行。
(5)信息泄露漏洞
攻击者利用信息泄露漏洞可以轻松获取计算机、服务器等设备的用户名、密码、存储数据等敏感信息。
例如,2018年7月,发现多款Echelon产品中存在信息泄露漏洞。该漏洞源于程序以明文的形式传递敏感信息。攻击者可利用该漏洞用恶意的固件二进制文件和模块替换原有的文件和模块,并在系统上执行代码。
(6)远程控制漏洞
远程控制指管理人员利用无线信号或电信号对远端的设备进行操作。远程控制漏洞指通过漏洞,实现非授权人员对计算机、设备的控制。
例如,PLC LE5109L存在远程控制漏洞CNVD-2018-17465。攻击者可通过发送构造的符合私有协议的数据包,利用该漏洞使PLC所有输出点位全部熄灭。Siemens 300/400系列PLC存在远程控制漏洞CNVD-2017-26804。攻击者可以通过Siemens PLC的102端口进行TCP通信,该脚本通过向PLC的102端口发送特定的报文可实现远程控制PLC的启停。
(7)远程代码执行漏洞
用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,因此攻击者可通过改变$PAT H环境变量或程序执行环境的其他方面来执行一个恶意构造的代码。远程代码执行漏洞会导致攻击者在目标系统执行任意命令,属于高危漏洞。
例如,2019年5月,微软公布了一个RDP远程代码执行漏洞CVE-2019-0708。该漏洞在不需要身份认证的情况下即可远程触发。攻击者可在目标系统执行任意代码,可安装应用程序,查看、更改或删除数据,创建完全访问权限的新账户等,危害与影响面极大。工业主机系统的版本相对老旧,本次漏洞影响的版本(Windows 7/Server 2008/Server 2003/XP)在工业环境广泛存在。由于连续生产的特点,工业主机很少甚至完全不升级补丁,因此本次漏洞使大量工业主机暴露在危险之中。无论是工业企业对外服务的网站、联网的Web形态的SCADA,还是由于远程维护需要而必须联网的工业控制系统、智能设备,都会面临漏洞威胁。
(8)路径遍历漏洞
路径遍历漏洞是由于服务器软件或者应用程序对用户输入文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过HTTP请求和利用一些特殊字符就可以绕过服务器的访问限制,访问任意受限的其他文件,甚至执行系统命令。利用这一漏洞,攻击者可以浏览任意的文件,造成信息泄露,或者执行恶意代码,使得整个系统崩溃。
例如,2017年2月,一款基于Web的SCADA的Honeywell XL Web II控制器被爆出发现多个高危漏洞,攻击者利用路径遍历漏洞CEV-2017-5143访问特定URL,实现路径遍历攻击。
(9)未授权访问漏洞
未授权访问漏洞是指由于需要安全配置或权限认证的地址、授权页面等存在一定的缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作,数据库、网站目录等敏感信息泄露的一种安全漏洞。
例如,德国菲尼克斯电气集团的一款管理型以太网交换机FL SWITCH存在未授权访问漏洞CVE-2017-16743。远程未经身份验证的攻击者可通过构造特殊的HTTP请求,绕过网络服务身份验证,从而获得设备的管理权限。ABB公司的一套楼宇管理系统ABB IP GATEWAY存在未授权访问漏洞CVE-2017-7933,该漏洞源于一些配置文件含有明文形式的密码。攻击者可利用该漏洞获取未授权的访问权限。
(10)SQL注入漏洞
SQL注入漏洞是网站中存在最多也是最简单的漏洞,主要原因是程序员在开发用户和数据库交互的系统时没有对用户输入的字符串进行过滤、转义、限制或处理不严谨,导致用户可以通过输入精心构造的字符串去非法获取数据库中的数据。
SQL注入漏洞攻击是注入攻击中的一种。它将SQL命令注入数据层输入,从而影响执行预定义的SQL命令。由于用户的输入也是SQL语句的一部分,因此攻击者利用这部分可以控制的内容,注入自己定义的语句,改变SQL语句执行逻辑,让数据库执行任意所需要的指令。通过控制部分SQL语句,攻击者可以查询数据库中任何自己需要的数据,利用数据库的一些特性,可以直接获取数据库服务器的系统权限。
一个成功的SQL注入漏洞攻击可以从数据库中获取敏感数据、修改数据库数据(插入/更新/删除)、执行数据库管理操作(如关闭数据库管理系统)、恢复存在于数据库文件系统中的指定文件内容,在某些情况下能对操作系统发布命令。
研华公司的产品中曾存在SQL注入漏洞CVE-2017-16716,远程攻击者可利用该漏洞泄露主机的敏感信息。摩莎公司开发的一套用于工业自动化系统的数据远程监控调试软件Moxa SoftCMS Live Viewer的1.6及之前的版本中存在SQL注入漏洞CVE-2017-12729,远程攻击者可利用该漏洞访问SoftCMS Live Viewer。